
        <html>
			<head>
			     <title>Hacking Team不需越狱即可监控iOS用户 - 猎豹移动安全中心</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/mobile/7195">http://drops.wooyun.org/mobile/7195</a></h1>
				
      <p>
        <h1>0x00 简介</h1>

<hr />

<p>近日总部位于意大利的监控软件开发公司HackingTeam被黑，415GB文件被泄露，HackingTeam泄漏的数据至少涉及多个针对Android 4.4以下版本的远程代码执行和提权漏洞、多个针对Java、Word的浏览器沙箱逃逸漏洞的完整攻击代码(<code>exploit</code>)以及<code>MacOS X、iOS、Android、WP8</code>等系统的恶意软件代码，里面有<code>Flash 0day, Windows字体0day, iOS enterprise backdoor app, Android selinux exploit, WP8 trojan</code>，更为严重的是，Hacking Team 的终极远控系统RCS，能够感染包括云平台在内的几乎所有平台或介质，实现了全平台的RSC系统（包括windows phone）。</p>

<p>在HackingTeam泄漏的文件，我们发现了有针对IOS进行监控的代码，一旦用户点击运行，就会请求获取一些数据的访问权限并追踪用户的位置，日历和联系人。在这个过程中，手机不需要越狱即可实现。</p>

<!--more-->

<h1>0x01 监控行为分析</h1>

<hr />

<p>相关代码在<code>\core-ios-master.zip\core-ios-master\ios-newsstand-app\newsstand-app</code>文件夹下，通览全部源码之后，我们发现，监控的实现，主要是通过在目标设备上安装一个报刊杂志应用，该应用安装后显示为一个空白应用，也没有图标。起代码文件如下所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606162352244fc0b200f803a620403bad9c9cce07984" alt="enter image description here" /></p>

<p>首先查看一下应用的信息文件<code>info.plist</code>，通过该文件知道该应用为一个报刊杂志类(<code>NewsstandApp</code>)应用，并指定了应用的显示风格和图标，部分信息如下所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/201507160616259004072bb8d646e35d84bfe74182727359464" alt="enter image description here" /></p>

<p>然后看程序入口模块Main.m，Main函数直接调用了AppDelegate类模块启动应用。</p>

<p><img src="http://static.wooyun.org//drops/20150716/201507160616278728128838d3c6d964d08a47ad7aab73a2918" alt="enter image description here" /></p>

<p>AppDelegate模块主要功能是任务的派发以及后台刷新。包括后台获取访问权限，不断刷新获取用户日历，联系人以及照片任务，键盘任务等。</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606162954516f96709032075f122f2919468ad716176" alt="enter image description here" /></p>

<p>同时该模块调用接口ViewController创建了一个nil类型的gMainView，当view需要被展示而它却是nil时，viewController会调用该方法</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606163153491788adc4296ee189c6862820aa0de5129" alt="enter image description here" /></p>

<p>该方法中实现了获取用户信息的主要功能，其功能模块为ViewConroller.m，该应用被加载后开始获取日历，联系人，GPS位置信息以及用户的照片。启动代码如下所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/20150716061632196801ef7617de687d46f66eae71fcf913142" alt="enter image description here" /></p>

<p>所有获取到的信息都会通过RCS系统发送到远程服务器，其RCS模块以RCS开头，传输过程中采用一系列的加密方式，加密模块主要为以NS开头的模块，起后边跟上其加密方式，剩下的还有键盘的实现模块和网络传输模块，如下所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/20150716061634948596bbd8b2ee0b56a0b416f3c8947069787" alt="enter image description here" /></p>

<h1>0x02 实测行为</h1>

<hr />

<p>将程序编译，然后在手机上运行。安装过后，会创建报刊杂志隐藏应用，长按应用即可显示出来，在设置的应用列表中也可以看到，如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606163642519cc8fe23e03b5429d6369a53603ffd266" alt="enter image description here" /> <img src="http://static.wooyun.org//drops/20150716/201507160616397566207ebc5680854e4b1da54a147f9867605" alt="enter image description here" /> <img src="http://static.wooyun.org//drops/20150716/2015071606164389961922bff160535836a26a1ae00bc893bb0" alt="enter image description here" /></p>

<p>点击该应用后，其所有的监控服务就会启动起来，越狱用户是没有任何提示直接启动，而非越狱用户需要添加信任，如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/20150716061644236043cb99e71685d0080878a79c06a720fb3" alt="enter image description here" /></p>

<p>但是该黑客团队拥有企业证书，因此它可以通过类似于网络链接的方式引导用户下载安装而不被察觉。</p>

<p>服务一旦启动起来，应用开始请求他所有想获取的数据权限，如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606164632800a4214b13acc01f709f2e0cad1b1e7c37" alt="enter image description here" /> <img src="http://static.wooyun.org//drops/20150716/2015071606164785977a0f26256d82f0ba218d73387ee31e380" alt="enter image description here" /> <img src="http://static.wooyun.org//drops/20150716/2015071606164959285740c173fa1c959b238543801d67b0ca5" alt="enter image description here" /></p>

<p>同时该应用增加了一个新的键盘，键盘界面和原生的IOS内置键盘相同，因此被攻击用户会在没有察觉的情况下将他们所有的输入信息发送到远程服务器上。键盘如下所示：</p>

<p><img src="http://static.wooyun.org//drops/20150716/2015071606165251821ebe2b76f915157cc3c631e3a941cd6d4" alt="enter image description here" /> <img src="http://static.wooyun.org//drops/20150716/201507160616544877020474c4b91ee8aba5fb891bdd11e3d0b" alt="enter image description here" /></p>

<p>需要注意的是，苹果公司针对第三方键盘做了一些保护措施，他不允许第三方键盘运行在具有密码标记的区域，因此该工具并不能够从应用程序和网站中窃取用户的输入密码，但它可以窃取用户名，电子邮件等其他敏感信息。</p>

<h1>0x03 感染途径</h1>

<hr />

<p>苹果公司做了大量的工作去保护了非越狱用户远离恶意软件，公共报道的也是监控软件只能去感染越狱的IOS设备，看似非越狱用户是安全的。</p>

<p>Hacking Team拥有苹果的企业证书，而企业证书是由苹果公司发布给企业，并且允许企业不经过appstore审核直接将自己的应用发布到自己的网站上。其他人可以直接下载不用设备授权即可直接安装，并且不限设备上限，因此使得该证书签名的任何应用，不论目标IOS设备是否越狱，都可以安装上。并且该监控工具是一个隐藏的报刊应用，因此可以分发到任何一台IOS设备上。但是苹果公司对此也做了一些安全警告，需要未越狱用户点击信任才可安装，但是从企业网站上下载的应用，用户一般都会忽略掉。</p>

<p>另外还可以通过捆绑越狱工具直接安装到用户手机中，或者通过点击一些下载链接，email等也可以安装在用户设备中。</p>

<h1>0x04 总结</h1>

<hr />

<p>苹果公司做了大量的工作去保护了非越狱用户远离恶意软件，公共报道的也是监控软件只能去感染越狱的IOS设备，看似非越狱用户是安全的。而Hacking Team企业证书的滥用导致监控工具恶意传播，对非越狱用户也造成了极大的危害，而苹果公司也在前不久吊销了该团队的企业证书，但是潜在的威胁依然存在，用户在平时下载第三方应用时候也要多注意程序的来源是否可信。</p>

<p>确认自己手机是安装远程监控可通过如下方法查看：</p>

<pre><code>1.检测应用中是否具有空名称的应用程序
2.设置-&gt;通用-&gt;键盘查看是否有名为app.keyboard的第三方键盘
</code></pre>

<p>一些安全建议：</p>

<pre><code>1.添加手机密码。很多间谍软件安全都需要物理接触，添加密码使得它们的攻击更艰难。
2.不要下载来自第三方市场或者链接的应用。
3.尽量不要越狱手机，如果不清楚请求权限的软件是什么，不要添加信任
4.下载安全程序，定期扫描手机系统，如cm security等。
</code></pre>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          